Organizarea Memoriei
Toate microprocesoarele au un subsistem al memoriei organizat ca o matrice liniara de elemente de baza de memorare, fiecare din ele asociat cu o anumita adresa. Dimensiunea elementului de baza de memorare este rezultatul coompromisului intre doua cerinte disjuncte:
a) reprezentarea compacta a datelor
b) acces eficient la datele stocate in memorie 

Adresarea bitilor
Necesitatea unei reprezentari compacte a datelor conduce la selectarea unei dimensiuni mici a elementului de baza de memorare, caci devine posibila ajustarea spatiului de memorie disponibil la dimensiunea formatului datelor, risipindu se doar un mic volum de memorie. Situatia extrema este cea in care cea mai mica unitate adresabila a memoriei este  bitul. Devine posibila stocarea datelor de diferite dimensiuni prin asocierea lor cu siruri contigue, de lungimi variabile, de biti, dimensiunea sirului fiind cea minim necesara pentru reprezentarea datelor. Se ajunge la utilizarea deplina a spatiului de memorie. 
Totusi o astfel de organizare a memoriei implica penalizari asupra performantei si costului. Principala problema a adresarii individuale a bitilor consta in necesitatea ca ei sa ajunga la unitatea centrala pe linii fizice diferite, intrucit pozitia unui bit in cadrul cuvintului citit din memorie este data de diferenta dintre adresa sa si adresa emisa de catre CPU. Rezulta necesitatea unor circuite de multiplexare realizate in cadrul modulului de memorie.
Alternativa consta in emularea adresarii la nivel de bit pe o masina care utilizeaza elemente de baza de memorare de dimensiuni mai mari. In acest caz, memoria este adresata la nivel de bloc, iar cimpul cerut de biti este extras de catre CPU cu ajutorul unui mecanism de deplasare   mascare (barrel shifter) care extrage cimpul necesar intr un singur ciclu. Probleme serioase apar cind cimpul de biti, desi de dimensiune mica, traverseaza frontiera intre doua cuvinte de memorie (fig. 1.6.). 
S-a considerat ca dimensiunea blocului citit este egala cu dimensiunea unui cuvint de memorie. Accesul la aceste date necesita doua cicluri de acces la memorie, trebuind citite ambele cuvinte pentru a extrage datele de interes. Desigur, aceleasi probleme se pun in legatura cu inscrierea.
Dezavantajele adresarii la nivel de bit au determinat proiectantii de microprocesoare sa utilizeze elemente de baza de memorie de dimensiuni mai mari. Cresterea eficientei acestui tip de adresare este conferita de similaritatea cu operatia fizica de acces la memorie. Datele si instructiunile sint vehiculate intre memorie si CPU pe un numar finit de linii fizice care transporta numarul de biti transferati  (intr un singur ciclu de acces la memorie). Deci, masinile cu lungime fixa de cuvint constituie o consecinta fireasca a implementarii fizice a transferului de date.

Masini cu lungime fixa a cuvintului
La majoritatea procesoarelor contemporane, dimensiunea cuvintului de date externe este de 32 biti. Alegerea ca dimensiune a elementului de baza de memorie a unei astfel de lungimi ar conduce la risipa de memorie cind se stocheaza tipuri de date necesitind un numar mult mai mic de biti (de exemplu: caractere in cod ASCII).
De aceea se accepta ca dimensiunea celei mai mici entitati de memorie adresabila sa fie cuvintul de 8 biti (octetul), iar toate adresele emise de catre CPU sint adrese de octeti. Pentru accesul la date cu dimensiunea mai mare de un octet, CPU emite adresa primului octet, insotita de semnale de comanda indicind dimensiunea datelor, dimensiune care poate merge pina la cea a cuvintului de date extern. In vederea simplificarii circuitelor de interfata numarul posibil de dimensiuni de date este limitat, fiecare dimensiune (in biti) fiind un divizor al lungimii cuvintului de date extern. Pentru microprocesoarele de 32 biti, dimensiunile uzuale pentru date accesibile intr un singur ciclu de memorie sint:
-date de 32 biti: long word (cuvint lung);
-date de 16 biti: word (cuvint);
-date de 8 biti: byte  (octet);
Uneori se utilizeaza termenul de quad word (cuvint cvadruplu) pentru indicarea de date cu dimensiunea de 64 biti, dar un astfel de tip de date nu poate fi citit/inscris intr un singur ciclu de acces lamemorie. Dementionat faptul ca amintita clasificare reflecta filozofia microprocesoarelor de 16 biti, pentru care 32 biti reprezinta un cuvint "lung", dar terminologia este puternic inradacinata in limbajul curent, asa incit va fi folosita in continuare.
Adresarea la nivel de octet si organizarea cu lungime fixa a cuvintului nu pot solutiona problema accesului la date ce traverseaza frontiera unui cuvint. Consideram o situatie in care accesul la date se realizeaza in doua cicluri de acces la memorie. In acest caz putem intrevedea doua solutii ale problemei:
a)evitarea alocarii de date intr-un astfel de mod
b)tratarea automata a unor astfel de situatii
In primul caz adresa de inceput a activitatii asociate unui cuvint (word) sau cuvint lung (long word) este fortata sa se supuna unor reguli simple:
-orice cuvint incepe la o adresa para;
-orice cuvint lung incepe la o adresa multiplu de 4.
In al doilea caz nu se mai impun restrictii. La aparitia acestor tipuri de situatii microprocesorul efectueaza automat operatiile de acces, insa acestea dureaza dublu. 

Biti si cimpuri de biti
Bitul constituie cea mai naturala reprezentare interna a variabilelor booleene, dar,asa cum s a demonstrat, datorita consumurilor suplimentare asociate unei astfel de reprezentari, astfel de variabile se reprezinta printr un octet.
Prin cimp de biti se intelege un sir contiguu de biti in memorie, fara ca sa existe vreo interpretare speciala asociata continutului sirului. Masinile care ofera suport pentru acest tip de date dispun de instructiuni: pentru copierea unui cimp de biti intr o locatie de memorie sau intr un registru; de  aliniere a cimpului la una din frontierele locatiei in care acesta se afla; de extindere, atunci cind este cazul, a semnului valorii asociate  cimpului de biti. Astfel de instructiuni, precum si cele ce efectueaza operatiile inverse folosesc la transformarea formatului valorii cimpului de biti intr un alt tip de date. De exemplu, copiind un cimp de biti intr un registru, aliniindu l la dreapta si extinzindu i bitul de semn se obtine un intreg cu aceeasi valoare ca cea a cimpului de biti. In felul acesta se pot efectua operatii cu valorile stocate in cimpurile de biti, dupa ce s a facut conversia de format si, apoi, dupa efectuarea operatiei, s a readus valoarea rezultata la formatul initial.
Folosirea cimpurilor de biti de lungime variabila permite stocarea compacta a datelor.
Utilizarea cimpurilor de biti permite reprezentarea acelorasi date intrun mod mult mai compact. Desi economia de memorie este importanta avantajul este anulat de cresterea timpului cerut de accesul la inregistrare sau la un cimp al inregistrarii, fapt datorat depasirii de catre un cimp a frontierelor dintre cuvinte. Totusi, cimpurile de biti isi pastreaza utilitatea cind memorarea compacta a informatiei constituie o necesitate. 

Cimpurile de biti au aceleasi avantaje si dezavantaje ca si adresarea la nivel de bit, intrucit ele pot fi utilizate pentru emularea adresarii la nivel de bit pe masini cu lungimi fixe de cuvint si memorie structurata pe octeti. Pentru a defini un cimp de biti sint necesare trei informatii:
a)A=adresa octetului;
b)P=offsetul bitului (primul al cimpului);
c)S=lungimea cimpului
Primii doi parametri localizeaza primul bit al cimpului. Valoarea offsetului difera de la o masina la alta. De regula, valoarea maxima a lui S este egala cu dimensiunea cuvintului de date intern.

Intregi cu semn si fara semn
Pentru reprezentarea in sistemele cu microprocesoare a valorilor intregi se folosesc doua forme:
a)reprezentarea in complement fata de doi: valoarea X stocata prin intermediul unui sir de n biti X0 X1 ... Xn-1 este data de X=(-X0+sum(i=1:n-1)*Xi*2^-i)*2^n-1 
X ia valori intre -2^(n-1) si 2^(n-1)-1;
b)reprezentarea binara pura: valoarea X stocata prin intermediul unui sir de biti X0 X1 ... Xn-1 este data de X=sum(i=0:n-1)Xn-1-i*2^i.
Pentru aceasta reprezentare gama de valori ale lui X este cuprinsa intre 0 si 2^n-1.
Trebuie remarcat faptul ca reprezentarea in complement fata de doi permite, spre deosebire de cea in forma binara pura, reprezentarea numerelor negative. In mod obisnuit intregii se folosesc pentru contoare, ca indici ai matricelor si ca adrese de memorie, asa ca alegerea modului de reprezentare este determinata de utilizare. De exemplu adresele se reprezinta in forma binara pura.
Practic toate  microprocesoarele dispun de instructiuni care opereaza cu intregi in oricare dintre cele doua forme de reprezentare, cu oricare dintre cele trei lungimi despre care s a vorbit (octet, cuvint, cuvint lung). Unele microprocesoare pot manipula intregi cu lungimea de 64 biti, iar coprocesoarele matematice folosesc intregi reprezentati pe 80 biti (pentru ca lungimea finita de reprezentare a datelor sa afecteze cu o valoare maxima prestabilita precizia rezultatelor).

Caractere
Cele mai importante tipuri de date manipulate de programe sint texte si numere. In consecinta, toate microprocesoarele dispun de o metoda pentru reprezentarea interna a caracterelor. De regula, fiecarui caracter tiparibil i se asociaza un intreg fara semn (numit cod al caracterului). Aceasta conventie permite folosirea instructiunilor destinate intregilor la manipularea si compararea caracterelor. Cel mai raspindit cod de reprezentare a caracterelor este codul ASCII (American Standard Code for Communication Interchange), fiecarui caracter asociindu i se un octet.
O structura de date des utilizata este sirul de caractere (string),echivalent cu un vector de octeti.  Lungimea sirului poate fi fixa sau variabila ; cind este variabila se impune utilizarea unui caracter special pentru a indica terminarea sirului sau asocierea cu un contor indicind numarul de caractere al sirului.De cele mai multe ori in conjunctie cu un astfel de contor  lungimea sirului este limitata la 65.535 (2^16-1, deci reprezentarea pe 16 biti a contorului). Unele microprocesoare pot manipula nu numai siruri de caractere (reprezentate prin octeti), ci si siruri de cuvinte de 16 biti (word) sau 32 biti (longword). Operatiile uzuale cu siruri includ compararea si mutarea. In aceeasi situatie intra si folosirea unui sir drept tabela de conversie (table lookup) in operatii legate de conversii de coduri. 
Pentru adresarea unui sir sint necesare adresa primului caracter (pentru prelucrare ascendenta) sau a ultimului caracter (pentru prelucrare descendenta), precum si numarul de caractere continute de catre sir.
Dimensiunea sirurilor nu permite pastrarea lor in registrele unitatii centrale de prelucrare, asa ca ele sint manipulate in memorie. La unele microprocesoare informatiile de adresare a sirului trebuie pastrate in registre, deoarece executia instructiunilor referitoare la siruri poate necesita mai multe operatii de acces la aceste informatii, de exemplu pentru incrementarea/decrementarea indicatorului elementului curent al sirului si actualizarea contorului de caractere.

Numere in format binar codificat zecimal - BCD
Considerente legate de viteza de calcul impun reprezentarea interna a numerelor in formatul binar si nu in cel zecimal. Pe de alta parte, utilizatorului ii este mai comod sa foloseasca reprezentarea zecimala, asa ca se impune necesitatea conversiei datelor din formatul zecimal in cel binar (la introducerea datelor) si din cel binar in formatul zecimal (la extragerea datelor). Aceste conversii sint consumatoare de timp asa ca uneori se poate accepta efectuarea de operatii cu numere in forma zecimala (atunci cind aceste operatii nu sint de o complexitate deosebita si volumul de date prelucrate nu este prea mare). Reprezentarea zecimala propriu zisa este imposibila, deoarece baza de numeratie folosita in sistemele de calcul este 2, asa ca se recurge la o reprezentare apropiata de cea zecimala, numita forma BCD (de la binary coded decimal-numere zecimale in codificare binara).
Codul BCD foloseste grupe de 4 biti pentru reprezentarea valorii individuale a fiecarei cifre zecimale care compune un numar dat. Deci,reprezentarea BCD a unui numar consta intr un sir de bytes de 4 biti, fiecare codificind cifra zecimala corespunzatoare pozitiei byte-ului in sir.
Pentru stocarea in memorie a formatelor BCD se folosesc doua metode: BCD impachetat(packed BCD) si BCD neimpachetat(unpacked BCD).
Formatul BCD impachetat permite memorarea intr un octet a doua cifre zecimale. Fata de formatul BCD neimpachetat, care foloseste doar cei patru biti mai putin semnificativi ai octetului  pentru a memora o singura cifra zecimala (ceilalti biti sint 0), se obtine o reducere la circa jumatate a spatiului de memorie necesar reprezentarii unui numar dat. Pe de alta parte formatul neimpachetat este mai apropiat de reprezentarea zecimala , ceea ce simplifica operatia de conversie a rezultatelor din forma BCD in cea zecimala.
In general microprocesoarele sint prevazute cu instructiuni pentru operatii aritmetice cu cifre binare, si nu cu numere zecimale. Pentru operatii aritmetice cu numere zecimale de mai multe cifre se utilizeaza subrutine dedicate. De asemenea, unele coprocesoare matematice ofera functii de prelucrare a numerelor zecimale.

Matrici
Microprocesoarele nu ofera instructiuni pentru manipularea datelor structurate in matrici (arrays), insa ele poseda unele moduri de adresare create special in scopul inlesnirii prelucrarii acestor structuri de date.
Limbajele de nivel inalt permit programatorului sa defineasca matrici cu mai multi indici (numarul este limitat superior de caracteristicile compilatorului), elementele matricii putind fi de oricare din tipurile de date, standard sau definite de utilizator. Compilatorul reprezinta aceasta structura multidimensionala de date printr o matrice unidimensionala de octeti stocati in memorie. Reprezentarea presupune folosirea de n octeti pentru fiecare element, n fiind determinat de tipul elementului. Apoi elementele sint aranjate in memorie incepind de la cea mai mica valoare a indicelui si continuind cu elementele indicate de valorile incrementate ale indicelui, pina la cea maxima.
In unele limbaje de programare (de exemplu Pascal), indicii unei matrici pot diferi ca tip, desi ei trebuie sa ia valori intr-o multime discreta si finita, fapt ce permite compilatorului asocierea biunivoca de numere naturale  0,1,...,m-1  la elementele multimii in discutie(m este numarul de elemente ale acestei multimi).
Evaluarea adresei unui element se amplifica in masura considerabila cind se considera o matrice unidimensionala de  elemente standard, caci numarul de inmultiri se reduce la una singura, iar unul din factori, dimensiunea in octeti a elementului, este o putere a lui 2  (0,1,2,3,).